/**
 * // ============================================================================
 * //
 * // Copyright (C) 2006-2007 Dengues
 * //
 * // Google Group: http://groups.google.com/group/dengues
 * // QQ Group: 24885404
 * //
 * // This library is free software; you can redistribute it and/or
 * // modify it under the terms of the GNU Lesser General Public
 * // License as published by the Free Software Foundation; either
 * // version 2.1 of the License.
 * //
 * // This library is distributed in the hope that it will be useful,
 * // but WITHOUT ANY WARRANTY; without even the implied warranty of
 * // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * // Lesser General Public License for more details.
 * //
 * // You should have received a copy of the GNU General Public License
 * // along with this program; if not, write to the Free Software
 * // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 * //
 * // ============================================================================
 * 
 *
 * $Id$
 */
package org.dengues.model.reports.util;

import org.dengues.model.reports.*;

import org.dengues.model.warehouse.Storage;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see org.dengues.model.reports.ReportsPackage
 * @generated
 */
public class ReportsAdapterFactory extends AdapterFactoryImpl {
    /**
     * The cached model package.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected static ReportsPackage modelPackage;

    /**
     * Creates an instance of the adapter factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public ReportsAdapterFactory() {
        if (modelPackage == null) {
            modelPackage = ReportsPackage.eINSTANCE;
        }
    }

    /**
     * Returns whether this factory is applicable for the type of the object.
     * <!-- begin-user-doc -->
     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
     * <!-- end-user-doc -->
     * @return whether this factory is applicable for the type of the object.
     * @generated
     */
    @Override
    public boolean isFactoryForType(Object object) {
        if (object == modelPackage) {
            return true;
        }
        if (object instanceof EObject) {
            return ((EObject)object).eClass().getEPackage() == modelPackage;
        }
        return false;
    }

    /**
     * The switch the delegates to the <code>createXXX</code> methods.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected ReportsSwitch<Adapter> modelSwitch =
        new ReportsSwitch<Adapter>() {
            @Override
            public Adapter caseReports(Reports object) {
                return createReportsAdapter();
            }
            @Override
            public Adapter caseProperty(Property object) {
                return createPropertyAdapter();
            }
            @Override
            public Adapter caseStyle(Style object) {
                return createStyleAdapter();
            }
            @Override
            public Adapter caseRepBody(RepBody object) {
                return createRepBodyAdapter();
            }
            @Override
            public Adapter caseRepTable(RepTable object) {
                return createRepTableAdapter();
            }
            @Override
            public Adapter caseRepColumn(RepColumn object) {
                return createRepColumnAdapter();
            }
            @Override
            public Adapter caseRepGroup(RepGroup object) {
                return createRepGroupAdapter();
            }
            @Override
            public Adapter caseRepCell(RepCell object) {
                return createRepCellAdapter();
            }
            @Override
            public Adapter caseRepRow(RepRow object) {
                return createRepRowAdapter();
            }
            @Override
            public Adapter caseAbstractReportObject(AbstractReportObject object) {
                return createAbstractReportObjectAdapter();
            }
            @Override
            public Adapter caseStorage(Storage object) {
                return createStorageAdapter();
            }
            @Override
            public Adapter defaultCase(EObject object) {
                return createEObjectAdapter();
            }
        };

    /**
     * Creates an adapter for the <code>target</code>.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param target the object to adapt.
     * @return the adapter for the <code>target</code>.
     * @generated
     */
    @Override
    public Adapter createAdapter(Notifier target) {
        return modelSwitch.doSwitch((EObject)target);
    }


    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.Reports <em>Reports</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.Reports
     * @generated
     */
    public Adapter createReportsAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.Property <em>Property</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.Property
     * @generated
     */
    public Adapter createPropertyAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.Style <em>Style</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.Style
     * @generated
     */
    public Adapter createStyleAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.RepBody <em>Rep Body</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.RepBody
     * @generated
     */
    public Adapter createRepBodyAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.RepTable <em>Rep Table</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.RepTable
     * @generated
     */
    public Adapter createRepTableAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.RepColumn <em>Rep Column</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.RepColumn
     * @generated
     */
    public Adapter createRepColumnAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.RepGroup <em>Rep Group</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.RepGroup
     * @generated
     */
    public Adapter createRepGroupAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.RepCell <em>Rep Cell</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.RepCell
     * @generated
     */
    public Adapter createRepCellAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.RepRow <em>Rep Row</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.RepRow
     * @generated
     */
    public Adapter createRepRowAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.reports.AbstractReportObject <em>Abstract Report Object</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.reports.AbstractReportObject
     * @generated
     */
    public Adapter createAbstractReportObjectAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.dengues.model.warehouse.Storage <em>Storage</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.dengues.model.warehouse.Storage
     * @generated
     */
    public Adapter createStorageAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for the default case.
     * <!-- begin-user-doc -->
     * This default implementation returns null.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @generated
     */
    public Adapter createEObjectAdapter() {
        return null;
    }

} //ReportsAdapterFactory
